package io;

import java.io.*;

/**
 * @Classname: CopyDemo2
 * @Author: bromide
 * @CreateTime: 2022/3/28--11:54
 * @Version: V1.0
 * @Desciption: 通过提高每次读写的数据量，减少实际读写的次数，可以提高读写效率
 * <p>
 * 单字节的读写属于随机读写形式。
 * 一组字节的读写属于块读写形式。
 * 大多数的硬件快读都比随机读写性能好，尤其机械键盘上体现最为明显。
 * <p>
 * InputStream和OutputStream上定义了块读写数据的相关方法
 */
public class CopyDemo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("./11.md");
        FileOutputStream fos = new FileOutputStream("./11_cp.md");
        byte[] data = new byte[4];
        int len;
        long start = System.currentTimeMillis();
        while ((len = fis.read(data)) != -1) {
            fos.write(data, 0, len);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完成!耗时：" + (end - start) + "ms");
        fis.close();
        fos.close();
    }
}
